/*
 * Created by Huang 嵘才 on 18-2-7 上午11:22
 * Copyright (c) 2018. All rights reserved.
 * Last modified 18-2-6 下午5:31
 */

package io.esirong.image;

import android.content.Context;
import android.view.View;

import androidx.annotation.DrawableRes;

/**
 * ImageLoaderStrategy
 * * ImageLoad统一的图片加载框架
 * <P></>
 * 请参照策略模式（定义加载图片的默认入口（定义策略），其实现交给不同的实现提供者（这里有Glide, fresco...)
 * Created by 黄嵘才(HuangRc) on 2018/2/1.
 */

public interface ImageLoaderStrategy {

    /**
     * 初始化 在Application调用它
     *
     * @param context Context
     */
    void init(Context context);

    /**
     * 显示图像
     *
     * @param v       显示的控件
     * @param url     图像来源
     * @param options 加载配置
     */
    void showImage(View v, String url, ImageLoaderOptions options);

    /**
     * 显示图像
     *
     * @param v        显示的控件
     * @param drawable 图像来源
     * @param options  加载配置
     */
    void showImage(View v, @DrawableRes int drawable, ImageLoaderOptions options);

    /**
     * 显示图像
     *
     * @param v          显示的控件
     * @param imageBytes 图像来源
     * @param options    加载配置
     */
    void showImage(View v, byte[] imageBytes, ImageLoaderOptions options);

}
